SLABINFO(5) | Linux Programmer's Manual | SLABINFO(5) |
名前¶
/proc/slabinfo - カーネル slab アロケータの統計
書式¶
cat /proc/slabinfo
説明¶
Linux カーネルの内部で良く利用されるオブジェクト (バッファヘッド、i-ノード、ディレクトリ・エントリなど) は、それぞれ自分用のキャッシュを備えている。ファイル /proc/slabinfo はこれらの統計を与える。例を示す。
% cat /proc/slabinfo slabinfo - version: 1.1 kmem_cache 60 78 100 2 2 1 blkdev_requests 5120 5120 96 128 128 1 mnt_cache 20 40 96 1 1 1 inode_cache 7005 14792 480 1598 1849 1 dentry_cache 5469 5880 128 183 196 1 filp 726 760 96 19 19 1 buffer_head 67131 71240 96 1776 1781 1 vm_area_struct 1204 1652 64 23 28 1 ... size-8192 1 17 8192 1 17 2 size-4096 41 73 4096 41 73 1 ...
それぞれの slab キャッシュごとに、キャッシュの名前、 現在アクティブなオブジェクトの数、利用可能なオブジェクトの総数、 各オブジェクトのサイズ (バイト単位)、少なくとも一つのアクティブな オブジェクトを有するページの数、アロケートされたページの総数、 slab あたりのページ数、が与えられている。
なお、 オブジェクトのアラインメントと slab キャッシュのオーバーヘッドとにより、 オブジェクトは通常ページの内部にきっちりとは収められていない。 利用中のオブジェクトをひとつでも保持しているページは、 利用中であるとみなされ、解放できない。
slab キャッシュ統計の機能を有効にしてコンパイルされたカーネルでは、 出力の最初の行に "(statistics)" と表示され、 5 つのカラムが追加される。 それぞれ、アクティブなオブジェクトの瞬間最大値、 オブジェクトがアロケートされた回数、 キャッシュの大きさが拡張された (新しいページがこのキャッシュに追加された) 回数、 キャッシュの大きさが縮小された (使っていないページがこのキャッシュから削除された) 回数、 新たなページをこのキャッシュにアロケートする際に起きたエラーの回数、である。 slab キャッシュ統計が使えないカーネルでは、これらのカラムは表示されない。
SMP システムでは、出力の最初の行に "(SMP)" と表示され、 各 slab ごとに 2 つのカラムが追加される。 これらは各 CPU が持つローカルなキャッシュ (per-CPU キャッシュ) の slab アロケーションポリシーを表示する (per-CPU キャッシュは、 オブジェクトをキャッシュからアロケートする際に CPU 間での同期を減少させるために設けられている)。 最初のカラムは per-CPU 制限、 すなわち各 CPU ごとにキャッシュできるオブジェクトの最大数である。 二番目のカラムはバッチカウント、 すなわち per-CPU キャッシュが空だったり一杯だったりした場合に、 グローバルなキャッシュと受け渡しできるフリーなオブジェクトの最大数である。
slab キャッシュ統計と SMP が両方有効になっている場合は、 per-CPU キャッシュの統計を表示する 4 つのカラムがさらに追加される。 最初の 2 つは per-CPU キャッシュの アロケーションヒットカウントとアロケーションミスカウントである。 すなわち、あるオブジェクトをアロケートしたときに、 それが per-CPU キャッシュの内部に あった/なかった 回数である。 続く 2 つは、per-CPU キャッシュのフリーヒットカウントとミスカウントである。 すなわち解放されたオブジェクトをグローバルなキャッシュにフラッシュする前に、 per-CPU キャッシュの制限の範囲に 収まった/収まらなかった 回数である。
SMP において per-CPU slab キャッシュの制限値や バッチカウントを変更するには、以下のようにすればよい:
echo "cache_name limit batchcount" > /proc/slabinfo
ファイル¶
<linux/slab.h>
バージョン¶
/proc/slabinfo は Linux 2.1.23 以降に存在する。 SMP における CPU ごとのキャッシュは Linux 2.4.0-test3 以降に存在する。
注意¶
Linux 2.6.16 以降では、 /proc/slabinfo ファイルは、カーネル設定オプション CONFIG_SLAB を有効にした場合のみ存在する。
2007-09-30 |